www.gusucode.com > VC++ 实现带图标的ComboBox下拉列表框-源码程序 > VC++ 实现带图标的ComboBox下拉列表框-源码程序/code/app.cpp
//Download by http://www.NewXing.com #include "stdafx.h" #include "app.h" #include "IconComboBox.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif class CTestDialog : public CDialog { public: CTestDialog(CWnd* pParent = NULL); // standard constructor //{{AFX_DATA(CTestDialog) enum { IDD = IDD_MAINFRM }; //}}AFX_DATA CSmallIconComboBox m_ctrlCombo1; UINT m_nIconID1; CLargeIconComboBox m_ctrlCombo2; UINT m_nIconID2; protected: //{{AFX_VIRTUAL(CTestDialog) virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL //{{AFX_MSG(CTestDialog) afx_msg HCURSOR OnQueryDragIcon(); virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() HICON m_hIcon; }; CTestDialog::CTestDialog(CWnd* pParent /*=NULL*/) : CDialog(CTestDialog::IDD, pParent) { //{{AFX_DATA_INIT(CTestDialog) //}}AFX_DATA_INIT m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_nIconID1 = IDI_SMALL2; m_nIconID2 = IDI_BIG3; } void CTestDialog::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestDialog) //}}AFX_DATA_MAP DDX_Control(pDX, IDC_COMBO1, m_ctrlCombo1); DDX_CBIcon(pDX, IDC_COMBO1, m_nIconID1); DDX_Control(pDX, IDC_COMBO2, m_ctrlCombo2); DDX_CBIcon(pDX, IDC_COMBO2, m_nIconID2); } BEGIN_MESSAGE_MAP(CTestDialog, CDialog) //{{AFX_MSG_MAP(CTestDialog) ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP END_MESSAGE_MAP() HCURSOR CTestDialog::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } BOOL CTestDialog::OnInitDialog() { CDialog::OnInitDialog(); //Set up the dialog menu SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); //Set up the icons which are contained //within the icon combo boxes //Add all the small icons available m_ctrlCombo1.AddIcon(IDI_SMALL1); m_ctrlCombo1.AddIcon(IDI_SMALL2); m_ctrlCombo1.AddIcon(IDI_SMALL3); m_ctrlCombo1.AddIcon(IDI_SMALL4); m_ctrlCombo1.AddIcon(IDI_SMALL5); m_ctrlCombo1.AddIcon(IDI_SMALL6); m_ctrlCombo1.AddIcon(IDI_SMALL7); m_ctrlCombo1.AddIcon(IDI_SMALL8); //Add all the large icons available m_ctrlCombo2.AddIcon(IDI_BIG1); m_ctrlCombo2.AddIcon(IDI_BIG2); m_ctrlCombo2.AddIcon(IDI_BIG3); m_ctrlCombo2.AddIcon(IDI_BIG4); //Force a DoDataExchange after adding the //icons to the combo box UpdateData(FALSE); return TRUE; } BEGIN_MESSAGE_MAP(CTestApp, CWinApp) //{{AFX_MSG_MAP(CTestApp) //}}AFX_MSG END_MESSAGE_MAP() CTestApp::CTestApp() { } CTestApp theApp; BOOL CTestApp::InitInstance() { Enable3dControls(); //Bring up the test dialog CTestDialog dlg; dlg.DoModal(); return FALSE; }